![]() FLOW CONTROL METHOD
专利摘要:
Flow control method during audio / video data transmission over a network link between a transmitter and a receiver. The method is implemented by the transmitter and comprises: a plurality of rate control modes including a first rate control mode not using receiver feedback information executed at the start of the transmission, wherein the only possible modification of the transmission rate by the transmitter is an increase, and at least a second regulation mode implemented following the first mode using at least one feedback of the receiver, a transition from the first mode to a second mode being when a return information indicates that said transmission rate has reached a maximum rate available on the network link; said transmission rate being shared between a useful data rate budget comprising the audio / video data, said useful budget, and a secondary data rate budget, said secondary budget, not necessary for the decoding of the audio / video data, the budget secondary is used to explore the capabilities of a network link. 公开号:FR3076158A1 申请号:FR1762915 申请日:2017-12-22 公开日:2019-06-28 发明作者:Yannick OMNES;Hamid ZAKARI;Ronan POULLAOUEC 申请人:AVIWEST; IPC主号:
专利说明:
The present invention relates to a rate control method between a transmitter and a receiver connected by a plurality of network links during the transmission of audio / video data, a device and a system implementing the method. In recent years, there has been a proliferation of applications using audio / video data transmissions over a wireless network. In addition to conventional transmissions of television programs on fixed devices such as televisions, there are applications of audio / video transmission from or between mobile devices such as smart phones (“smartphone” in English terminology), tablets , and drones. It is common for mobile devices to be suitable for using several types of wireless network. For example, a smart phone is suitable for using a mobile telephone network (such as a GSM network (Global System for Mobile Communications: "Global System for Mobile Communications" in English terminology) also called 2G network, a UMTS network. (universal mobile telecommunications system: "Universal Mobile Communication System" in English terminology), also called 3G network, an LTE-advanced network (Long term evolution Advanced: "Long Term Evolution Advanced" in English terminology), also called a 4G network, or an LTE-advanced pro network also called a 5G network, etc.) and a home network (such as for example an IEEE 802.11 network (ISO / IEC 8802-11) also called a Wi-Fi network or a bluetooth network ). These mobile devices generally only use one of these wireless networks at a time, usually the network with the best transmission performance. A transmission of audio / video data over a wireless network link generally uses a rate regulation method making it possible to estimate the performance in terms of bandwidth and latency of said link. Indeed, a device has a priori no idea of the performance of a wireless network link. The device must by itself discover what these performances are in order to transmit data with a bit rate in adequacy with these performances. There is an abundance of literature on speed control methods for the transmission of audio / video data over a network link. Reactivity properties are generally sought for these methods, making it possible to adapt audio / video transmission as quickly as possible to variations in the performance of said link. However, with the increase in the amounts of data to be transmitted over wireless networks, due for example to the increase in the resolutions of audio / video images or to the need to transmit control data in the case of a drone, using a single wireless network link is insufficient. This is why, certain mobile devices are adapted to communicate on several wireless network links in parallel (for example several 4G links, several 5G links, a combination of 4G, 5G and Wi-Fi links, etc.) in order to increase the available speed. However, communicating in parallel on several network links greatly complicates the problem of speed regulation. In fact, the conventional flow regulation methods cannot be immediately transposed to the multi-link case. These methods, although effective for regulating a bit rate on a given link, do not answer the question of the distribution of data over several links with performance varying independently. It is desirable to overcome these drawbacks of the state of the art. It is in particular desirable to find a rate regulation method which is adapted to the context of transmissions on a plurality of network links in parallel. It is moreover desirable that this method is simple to implement and has a low computational cost. According to a first aspect of the present invention, the present invention relates to a rate control method during the transmission of audio / video data over a network link between a transmitter and a receiver, said method being implemented during reception by the transmitter of information representative of the transmission transmitted by the receiver. The method is implemented by the transmitter and comprises: a plurality of speed control modes including a first speed control mode, executed at the start of the transmission, in which the only possible modification of the transmission speed by the transmitter is an increase, each rate increase value being determined by not taking into account any information representative of the transmission, and at least one second regulation mode implemented following the first mode, in which at least one of the information representative of the transmission is used to increase or decrease the transmission rate, a change from the first mode to a second mode taking place when one of the information representative of the transmission indicates that the transmission rate has reached a maximum rate available on the network link; said transmission rate being shared between a useful data rate budget comprising audio / video data, called useful budget, and a secondary data rate budget, said secondary budget, not necessary for the decoding of audio / video data, only the secondary budget is increased during an increase in the transmission rate, the useful budget being increased only when no information representative of the transmission received following an increase in the secondary budget indicates an increase in the risk of loss of data. The use of a very aggressive flow control mode at startup makes it possible to more quickly reach a speed available on the network link. The use of softer flow control mode thereafter makes it possible to continue flow control while limiting the risk of data loss. In addition, using secondary data to probe the speed available on the network can limit the impact that data loss would have on audio / video data. According to one embodiment, in the first mode, when at least one of the information representative of the transmission indicates that an increase in a useful budget is possible, the method comprises: increasing the useful budget by a second predefined percentage of the secondary budget when a transmission rate by the transmitter of secondary data is less than a first predefined percentage of the transmission rate by the transmitter of useful data and decrease the secondary budget by the value of the increase in the useful budget; increase the useful budget by setting the value of the useful budget to the sum of the secondary budget and a value representative of the rate of reception by the receiver of useful and secondary data transmitted by the transmitter. According to one embodiment, in the first mode, when at least one of the information representative of the transmission indicates that an increase in a secondary budget must be applied, the method comprises: increasing the secondary budget by a first value d 'predefined increase. According to one embodiment, in a second mode, when at least one of the information representative of the transmission indicates that an increase in the useful budget is possible, the method comprises: when one of the information representative of the transmission indicates that a receiver reception speed reaches a third predefined percentage of the maximum speed available on the network, allocate respectively to the useful budget and the secondary budget a fourth and a fifth predefined percentages of the reception speed, a sum of the useful budget and the secondary budget being equal to said reception speed, the useful budget being greater than the secondary budget; when one of the information representative of the transmission indicates that said reception speed is lower than the third predefined percentage of the maximum speed available on the network, set the secondary budget to zero, allocate to the useful budget a sixth predefined percentage of said maximum and decrease said maximum of a seventh predefined percentage. According to one embodiment, in a second mode, when at least one of the information items representative of the transmission indicates that an increase in the secondary budget must be applied, the method comprises: calculating an increase value by multiplying a second value d predefined increase less than the first predefined increase value by a coefficient between zero and the unit, said coefficient being calculated from information representative of a congestion window and information dependent on time to go observed by the receiver and transmitted in the information representative of the transmission to the transmitter; and; increase the useful budget by the calculated increase value. According to one embodiment, when at least one of the information items representative of the transmission indicates that no increase in the transmission rate is possible, the method comprises: applying a procedure for verifying the packet loss rate and reducing the rate transmission if the loss rate is greater than a predefined loss threshold; if the loss rate is lower than the predefined loss threshold, apply a go delay verification procedure and reduce the transmission rate when a difference between the go delay and a reference go delay value is greater than a predefined deviation. According to a second aspect of the invention, the invention relates to a method for regulating the rate between a transmitter and a receiver connected by a plurality of network links during the transmission of audio / video data. The method includes: forming a list of ordered links; browse the links in order of the list; for each link: defining a data budget to be transmitted by said link, known as the current link, using information provided for the current link by the rate control method according to the first aspect; and, transmit a quantity of data corresponding to said budget; go to the following link when the quantity of data corresponding to said budget has been transmitted by resuming the list at the beginning when all the links in the list have been browsed. Thus, several links are used in parallel, each link being used according to its capabilities. According to one embodiment, the list is ordered according to a performance metric calculated for each link of the plurality of links, for a link, said metric being an increasing function of the budget of data to be transmitted by said link, a decreasing function of information representative of a packet loss rate on said link, and an increasing function of a difference between a size of link congestion window and information representative of a measured time to go for said link. According to one embodiment, the performance metric for a network link i of the plurality of links is calculated as follows: where Bdatai is the useful budget for the network link i, Bseci is the secondary budget for the network link i, the sum of said useful budget and said secondary budget being the data budget to be transmitted by the network link i, Pcl is representative information of a packet loss rate for network link i, TD is a sum of secondary budget for all network links of said plurality, and owdt is the information representative of a measured forward delay for network link i . timewindow is a latency that the system made up of the drone 1 and the control system 3 must respect. In other words, there must be a timewindow delay between the moment when a data packet enters the system (ie for example the moment when the packet is generated by the drone 1) and the moment when it leaves it (ie for example, the moment when the packet is consumed by the control system 3). It is noted that a clock synchronization mechanism is implemented between the drone 1 and the control system 3 so that the latency can be effectively controlled. Timewindow is a predefined value set by a user of the system consisting of the drone 1 and the control system 3. For example, when a user wishes to make a duplex, he chooses a low Timewindow value (for example 100 milliseconds). On the other hand, if the user wishes to implement a one-way audio / video data transmission without time constraint on the display of said data, he chooses a high timewindow value (for example 400 milliseconds). According to one embodiment, when the sender finds himself without data to transmit after a transmission of a packet, the next link used to transmit a packet is the first in the list, the list then being browsed starting from the first link of the list. Thus, we favor the most efficient network links. According to a third aspect of the invention, the invention relates to a device for regulating bit rate during a transmission of audio / video data over a network link between a transmitter and a receiver, the device comprising means suitable for implementing the method according to the first aspect. According to a fourth aspect of the invention, the invention relates to a device for regulating the rate between a transmitter and a receiver connected by a plurality of network links during an audio / video data transmission, comprising means suitable for setting up implements the process according to the second aspect. According to a fifth aspect of the invention, the invention relates to an audio / video data transmission system comprising a transmitter comprising a device according to the third or fourth aspect and a receiver, the transmitter and the receiver being connected by at least a network link. According to a sixth aspect, the invention relates to a computer program, comprising instructions for implementing, by a device, the method according to the first aspect or the method according to the second aspect, when said program is executed by a processor of said device. According to a seventh aspect, the invention relates to storage means storing a computer program comprising instructions for implementing, by a device, the method according to the first aspect or the method according to the second aspect, when said program is executed by a processor of said device. The characteristics of the invention mentioned above, as well as others, will appear more clearly on reading the following description of an exemplary embodiment, said description being made in relation to the accompanying drawings, among which: the Fig. 1 schematically illustrates an example of an audio / video transmission system using a plurality of network links; - Fig. 2 schematically illustrates an example of a drone used in the audio / video transmission system; - Fig. 3 schematically illustrates an example of a control system used in the audio / video system; - Fig. 4A schematically illustrates an example of hardware architecture of a processing module of a transmitter according to the invention; - Fig. 4B schematically illustrates an example of hardware architecture of a processing module of a receiver according to the invention; - Fig. 5 schematically illustrates a method for regulating overall speed according to the invention allowing distribution of data over a plurality of network links; - Fig. 6 schematically illustrates a plurality of speed control modes used in a link speed control method; - Fig. 7 schematically illustrates a link rate regulation method according to the invention; - Fig. 8 schematically illustrates a first detail of the rate regulation process of a network link according to the invention; - Fig. 9 schematically illustrates a second detail of the rate regulation process of a network link according to the invention; - Fig. 10 schematically illustrates a third detail of the rate regulation process of a network link according to the invention; - Fig. 11 schematically illustrates a fourth detail of the rate regulation process of a network link according to the invention; and, - Fig. 12 describes a detail of a step in the method of FIG. 9. Next, the invention is described in the context of a drone system in which an operator controls a drone from a control system and the drone is adapted to acquire audio / video data and to transmit them to the control system. on which these are displayed. In this system, communications are bidirectional since at least audio / video data are transmitted from the drone to the control system and at least control data are transmitted from the control system to the drone. In addition, these communications use multiple wireless network links. The invention is however suitable for other contexts, in particular in the case of a system comprising two mobile devices alternately playing the role of transmitter and receiver, each mobile device being able to acquire audio / video data and to transmit it to the other device using a plurality of network links in parallel. In this case, the two mobile devices could for example be smartphones. Furthermore, the invention is suitable for systems where only audio data or only video data are exchanged. In this case, although we speak later of audio / video data, it may contain only audio data or only video data. Fig. 1 schematically illustrates an example of an audio / video transmission system using a plurality of network links. This system comprises a system 1 and a system 3 connected by a plurality of network links 2A, 2B and 2C. System 3 is a control system allowing an operator to control system 1 which is a drone. The plurality of network links 2A, 2B and 2C includes at least one 4G or 5G link, at least one Wi-Fi link and, in some embodiments, at least one satellite link. In this way, system 1 and system 3 can communicate at a short distance using a Wi-Fi link and, beyond the range of the Wi-Fi link, using a 4G or 5G link. Fig. 2 schematically illustrates an example of a drone used in the audio / video transmission system. The drone 1 comprises a control module 11, an acquisition module 10, a processing module 12 and a network module 13. The acquisition module 10 comprises a camera 100 adapted to acquire images in the environment of the drone 1. The camera 100 supplies the acquired images to an audio / video encoder 101, which compresses the video images in a format such as the format AVC (advanced video coding: “Advanced Video Coding” in English terminology (ITU-T H.264 - ISO / IEC MPEG-4 Part 10 (ISO / IEC 14496-10)) or HEVC (Highly Effective Video Coding) , "High Efficiency Video Coding" in English terminology (ITU-T H.265 - ISO / IEC 23008-2). The camera 100 also includes an audio sensor, which captures audio data and provides it to the audio / video encoder 101 which compresses them, for example in AAC (“Advanced Audio Coding” format in English terminology) The compressed audio / video data is then inserted into a transport stream by the audio / video encoder 101 such as for example an MPEG-TS (Moving Picture Expert Group - Transport Strea) stream The audio / video encoder 101 encapsulates the transport stream in packets such as RTP packets (Real-Time Transport Protocol (RFC 3550), audio data. and the video data being encapsulated in different packets. This gives an audio / video stream encapsulated in packets at the output of the control and acquisition module 10. When the system 1 is a drone, it comprises a control module 11, comprising motors 112, a movement controller 113 and at least one sensor 114, such as a gyroscope. The movement controller 113 receives control signals from the control system 3, and information from each sensor 114 and acts on the motors 112 in order to move the drone 1 taking into account these control signals and information . When the displacement controller 113 does not receive any command signal, in the event of a network cut, for example, it acts on the motors 112 in order to stabilize the drone in a current position while awaiting new command signals. The network module 13 comprises a communication module 13A, 13B and 13C corresponding respectively to the network links 2A, 2B and 2C. The communication module 13A is for example a first 5G module. The Communication Module 13B is for example a second 5G module. The 13C communication module is for example a Wi-Fi module. The processing module 12 is a central element of the drone 1. In fact, the processing module 12 receives statistical information on the state of each network link 2A, 2B and 2C, called information representative of the transmission, coming from the module network 13 and uses them to implement a rate regulation method according to the invention. The information representative of the transmission includes in particular for each network link, a time to go OWD ("one way delay" in English terminology), information representative of a last packet acknowledged, information representative of a rate of losses on the link, and information representative of a total number of bytes received. The processing module 12 in particular determines a bit rate constraint to be allocated to the audio / video encoder 101. Furthermore, the processing module 12 receives the audio / video data packets produced by the audio / video encoder 101 and is loaded to distribute these packets on the communication modules 13A, 13B and 13C taking into account the results of the rate regulation method. The processing module 12 also receives packets comprising control signals from the control system 3, extracts these control signals from the packets and transmits the control signals to the control module 11. In one embodiment, the network module 13 comprises more than three communication modules. In one embodiment, the processing module 12 implements a forward error control module ("Forward Error Control (FEC)" in English terminology) not shown. The advance error control module processes each type of data independently. The anticipation error control module calculates redundant data, for example in the form of error correction code, independently for video data, for audio data and for all other data passing between the drone 1 and the control system 3 This redundant data is transmitted in the form of packets and can be used by the control system 3 to repair packets of useful data lost during transmission. In one embodiment, the processing module 12 implements a module for retransmission of lost packets. The lost packet retransmission module manages each type of data independently. When the statistics received from the control system 3 indicate that one or more packets have been lost, the retransmission module retransmits the lost packets at least once. In one embodiment, the processing module 12 implements an anticipation error control module and a retransmission module. However, these modules are not activated at the same time. The retransmission module of a communication module is activated when an average latency between the drone 2 and the control system 3 is less than a predetermined threshold. In this case, the anticipation error control module is deactivated. When the average latency exceeds said predetermined threshold, the anticipation error control module is activated and the retransmission module is deactivated. The predetermined threshold is for example equal to “100 ms” of latency. In one embodiment, the processing module 12 also uses information from the audio / video encoder 101 to implement the rate control method according to the invention. For example, the processing module 12 uses information representative of a state of a memory ("buffer" in English terminology) output from the audio / video encoder 101. Fig. 3 schematically illustrates an example of a control system used in the audio / video system. The control system 3 comprises a multimedia module 30, a control module 31, a processing module 32 and a network module 33. The multimedia module 30 includes a display module 300 (such as a screen) and broadcasting audio data (such as at least one speaker). The module 300 receives the decoded audio / video data from a decoding module 301. When the system 1 is a drone, the control system 3 comprises a control module 31. The control module 31 receives the commands from an operator obtained by means of a man-machine interface such as joysticks, buttons or voice commands and translated into control signals. The network module 33 includes a communication module 33A, 33B and 33C corresponding respectively to the network links 2A, 2B and 2C. The communication module 33A is for example a first 5G module. The Communication Module 33B is for example a second 5G module. The Communication Module 33C is for example a Wi-Fi module. The processing module 32 receives the audio / video data in the form of packets coming from the network module, reorders these packets, and transmits the reordered packets to the audio / video decoding module 301. Furthermore, the processing module 32 receives the control signals produced by the control module 31, inserts them into packets and takes care of the distribution of the packets obtained on the communication modules 33A, 33B and 33C. The processing module 32 also receives statistics on the state of each network link 2A, 2B and 2C from the network module 33, puts this information in the form of information representative of the transmission and inserts this information in packets so that they are transmitted to the drone 1. In one embodiment, the processing module 32 uses the two network links offering the best performance for transmitting the information representative of the transmission. Each packet containing information representative of the transmission is therefore transmitted a first time on the network link offering the best transmission performance and in parallel, a second time on the link offering the second best transmission performance. In one embodiment, when the processing module 12 of the drone 1 implements an anticipation error control module, the processing module 32 implements a symmetrical module capable of decoding the redundant data if necessary. In one embodiment, when the processing module 12 of the drone 1 implements a retransmission module, the processing module 32 implements a symmetrical module capable of requesting retransmissions of lost packets. In one embodiment, the processing module 32 recovers information representative of the state of the audio / video decoder 301 and transmits it in the form of packets to the drone 1. For example, the processing module 32 recovers the state of an input memory of the decoding module 301 and transmits information representative of this state to the drone 1. The state of the input memory of the drone can be used by the processing module 12 of the drone 1 to refine its regulation of debit. In one embodiment, the network module 33 includes more than three communication modules. As we saw above, the drone 1 and the control system 3 communicate using packets. Each packet exchanged includes a global header, described in table 1 below, the syntax and semantics of which are the same regardless of the data transported by the packet. A "Packet ID" field describes the content of the package, i.e. describes whether the package contains a command or audio / video data. A "Packet type" field describes whether the packet is a request or a response to a request. A packet containing audio / video data is for example considered as a request. An acknowledgment packet is considered a response to a request. Table 1: Global header Following the global header, each packet includes a header depending on the data transported by the packet. When the packet comprises audio / video data or data assimilated to audio / video data, which we will call hereinafter secondary data, the packet includes a header, called data packet header, described by table 2. Table 2: data packet header The data packet header includes: • a "Stream Id" field identifying the data stream to which the packet belongs; • a “retransmission” field equal to “1” for a retransmission packet or a secondary data packet, “0” otherwise; • a “reserved” field reserved for next use; • a “seqnum” comprising a sequence number of the data packet; • a “Data timestamp” field including a time indicator for the data transported by the data packet; • a “packet timestamp” field including a time stamp for sending packets (ie time for sending the packet); • a “link seqnum” field including a sequence number of the link used; • a "data size" field giving the size in bytes of the data contained in the packet; • a "FEC" field giving indications on the method used to generate anticipation error control data. When the package includes commands to control the drone 1, the global header is followed by a command package header shown in Table 3. Table 3: command packet header The command packet header includes: • a "command type" field describing the type of a command (for example, front, back, left, right, etc.); • a “Counter” field indicating an order number; • a "Retry" field used for acknowledgments; • a "timestamp" field corresponding to a time stamp for sending the command. This indicator is used for example to determine if an order has arrived too late and that it should not be considered by the drone. When the packet includes information representative of the transmission, the global header is followed by a packet header of information representative of the transmission described in table 4. Table 4: Header of packets of information representative of the transmission The packet header of information representative of the transmission comprises statistics on a plurality of links. As we saw above, this type of packet is transmitted over the two best network links of the plurality of links. More specifically, the information packet header representative of the transmission includes: • a “link connected” field indicating the number of links between the drone 1 and the control system 3 and therefore the number of links for which statistics are transmitted in the information packet representative of the transmission; • at least one “link index” field giving an index of the link for which the following statistics are sent, ie index of the link concerned by the following four fields of the packet; • at least one "OWD" field carrying information representative of a delay in going between the drone and the control system for the index link "link index" calculated by the processing module 32; • at least one "Ack end seq" field carrying information representative of the last packet acknowledged by the processing module 32 for the index link "link index"; • at least one "Total link loss" field carrying information representative of a number of lost packets on the index link "link index"; • at least one “Total link received bytes” field carrying information representative of a quantity of bytes received on the “link index” index link. Fig. 4A schematically illustrates an example of hardware architecture of the processing module 12. The processing module 12 then comprises, connected by a communication bus 120: a processor or CPU ("Central Processing Unit" 121); a random access memory RAM (“Random Access Memory” in English) 122; a read only memory (ROM) 123; a storage unit or storage media reader, such as an SD (Secure Digital) card reader 124; a set of communication interfaces 125 allowing the processing module 120 to communicate with the other modules included in the drone 1. Processor 121 is capable of executing instructions loaded into RAM 122 from ROM 123, external memory (not shown), storage medium, such as an SD card, or a network link. When the processing module 120 is powered up, the processor 121 is capable of reading instructions from RAM 122 and executing them. These instructions form a computer program causing the processor 121 to implement the method described in relation to FIGS. 5 to 11. All or part of the process described in relation to FIG. 5 to 11, can be implemented in software form by execution of a set of instructions by a programmable machine, such as a DSP (“Digital Signal Processor” in English) or a microcontroller, or be implemented in hardware form by a machine or a dedicated component, such as an FPGA ("Field-Programmable Gate Array" in English) or an ASIC ("Application-Specific Integrated Circuit" in English). Fig. 4B schematically illustrates an example of hardware architecture of the processing module 32. The processing module 32 then comprises, connected by a communication bus 320: a processor or CPU 321; a random access memory RAM 322; a ROM 323 ROM; a storage unit or storage media reader, such as an SD 324 card reader; a set of communication interfaces 325 allowing the processing module 320 to communicate with the other modules included in the control system 3. Processor 321 is capable of executing instructions loaded into RAM 322 from ROM 323, external memory (not shown), storage medium, such as an SD card, or a network link. When the processing module 320 is powered up, the processor 321 is able to read instructions from RAM 322 and execute them. These instructions form a computer program causing the processor 321 to carry out steps for reforming the audio / video stream from packets containing the audio / video data, steps for forming packets containing the signals. control, steps for retrieving statistics on network links and inserting information representative of the transmission obtained from these statistics in packets. All or part of the steps executed by the processing module 32, can be implemented in software form by execution of a set of instructions by a programmable machine, such as a DSP (“Digital Signal Processor” in English) or a microcontroller , or be implemented in hardware form by a dedicated machine or component, such as an FPGA (“Field-Programmable Gate Array” in English) or an ASIC (“Application-Specific Integrated Circuit” in English). Next, we describe the flow control method according to the invention. This method comprises for each link of a plurality of links, an execution of a link rate regulation method making it possible to determine a bit rate to be transmitted on said link and for the plurality of links, an execution of a regulation method overall throughput to distribute data over a plurality of network links. The link rate control method and the global rate control method are executed in parallel, the global rate control method using information provided by the link rate control method during its execution. The link rate regulation process is described in relation to Figs. 6 to 11 and the overall flow regulation method is described in relation to FIG. 5. The link rate regulation method is implemented by a transmitting device. In the context of the example described in relation to FIG. 1, it is therefore implemented by the drone 1 and more precisely by the processing module 12. As we have seen above, the processing module 12 executes the link rate regulation method for each network link 2A , 2B and 2C. Each network link 2A, 2B and 2C is therefore associated with an instance of the link rate regulation method. The link rate control method includes a plurality of rate control modes. Fig. 6 schematically illustrates a plurality of speed control modes used in the link speed control method according to the invention. The plurality of link rate control modes includes a first rate control mode, called aggressive mode, executed at the start of the transmission. In aggressive mode the only possible change in the transmission rate is an increase. Each speed increase value is determined by not taking into account any information representative of the transmission. For a network link, known as the current link, the aggressive mode is used to allow the drone to quickly reach a maximum speed available on the current link. The plurality of flow control modes includes at least one second control mode implemented following the aggressive mode, in which at least information representative of the transmission on the current link is used to increase or decrease the transmission speed . In the aggressive mode, the processing module 12 loops over a step 60 of speed increase as long as the transmission speed of the drone 1 has not reached a maximum speed available on the current link. In a step 61, the processing module switches from the aggressive mode to a second mode when at least one item of information representative of the transmission on the current link indicates that the transmission rate has reached the maximum rate available on the current link. The representative information of the transmission is for example a packet loss rate or a delay to go (OWD). When the packet loss rate (when a difference between the last measured go delay owd and a minimum go delay min_OWD) exceeds a predetermined passage threshold (respectively a predetermined difference), the processing module 12 switches to a second mode. The predetermined passage threshold is for example “1%” of packet losses. The predetermined difference is for example equal to 2 x min_OWD which is equivalent to having a delay to go three times greater than the minimum delay to go min_OWD. Once in a second regulation mode, the processing module never returns to the aggressive mode. In one embodiment, the plurality of flow control modes includes two second modes, a first second mode, called soft mode, and a second second mode, said secure mode. During step 61, the processing module 12 switches from aggressive mode to gentle mode. In the soft mode, the processing module continues to explore the current link by increasing the transmission rate but, this time, more gradually. To do this, as we will see in relation to FIG. 9, the processing module 12 uses lower flow increase values than in the aggressive mode. As soon as the successive rate increases carried out in the soft mode cause packet losses, an increase in the forward delay or that the rate increase value is less than a predetermined low increase threshold, the processing module 12 switches to secure mode during a step 62. In the secure mode, the processing module 12 decreases the transmission rate as soon as packet losses or too high time to go are noted. When the reduction in the transmission rate has made it possible to prevent packet losses and the time to go has returned to an acceptable level, the processing module 12 determines a value for increase in speed and applies the determined increase to the transmission rate on the current link. If the flow increase value is greater than the predetermined low increase threshold, the processing module returns to soft mode during a step 63. Otherwise, the processing module 12 loops in secure mode during a step 64. In this way, the increase values in the secure mode are lower than in the soft mode. There is therefore less risk of causing packet loss or increased delays in going to secure mode than in soft mode. Fig. 7 schematically illustrates the link rate regulation method according to the invention. As said above, the link rate control method is executed in parallel for each link of the plurality of links. In a step 70, the processing module 12 receives a packet of information representative of a transmission. Each reception of a packet of information representative of a transmission causes the link rate regulation process to be launched. These packets are transmitted regularly to the control equipment 3 by the drone 1, for example every "5 ms". In a step 71, the processing module 12 determines whether an increase in the transmission rate on the current link is possible. To do this, the processing module 12 uses in particular the information contained in the information packets representative of the transmission. From the information contained in the "Total link loss" field and the information "Ack end seq", the processing module 12 calculates a current loss rate Pcs on the link. The information "Ack end seq" represents the sequence number of the last acquitted packet. By dividing the value of the "Total link loss" field by a difference between the last two values of the "Ack end seq" information received in information packets representative of the transmission, we can determine the current loss rate Pc. From the current loss rate Pc and a loss rate Pprev preceding the current loss rate Pc, the processing module 12 calculates an increase value of the loss rate ΔΡ = Pc - Pprev. From the current loss rate Pc and a predefined number of loss rates preceding the current loss rate Pc, the processing module calculates an average loss rate on the current link P. From the information contained in the “OWD” field, the processing module 12 obtains a current go delay owdc and calculates a difference Aowd between the current go delay owdc and a minimum value of the current go delay min_OWD. The minimum value of the current going delay min_OWD is calculated as the transmission takes the minimum value of the going delay observed. From the information in the "Total link received bytes" field, the processing module calculates the rx_bitrate rate of reception of the control system 3 on the current link. Each packet includes a time indicator in its header (not shown in Tables 1 to 4). The rx_bitrate rate is calculated by dividing the value of the "Total link received bytes" field by a difference between the time indicator values of the last two information packets representative of the transmission. In one embodiment, this flow rate value rx_bitrate is filtered, for example by a Butterworth filter of order 2, in order to attenuate any large variations in the flow rates ^ calculated successively. Following these calculations, the processing module 12 checks whether the constraints of a predefined set of constraints are met: where ε is a low value for example equal to the unit, Tx is a transmission rate on the current link by the drone 1, is a first derivative of the variations in the transmission rate Tx and is a primary derivative of variations in reception rate Rx- If each constraint of the predefined set of constraints is respected, the processing module 12 goes to a step 72. Otherwise, the processing module 12 goes to a step 75. Increasing a transmission rate is always risky when there is only an approximate knowledge of the bandwidth available on a network. The increase may cause loss of useful data (audio / video or similar data). To limit the impact that an increase in bit rate could have on useful data, the transmission rate on a current link is shared between a bitrate budget for useful data including audio / video data, known as useful budget, and a budget for secondary data rate, called secondary budget, not necessary for decoding audio / video data. Only the secondary budget is increased when the transmission rate is increased. The secondary data budget is increased to test the speed available on the network. The secondary data being made up either of redundant data, or of filling data (“stuffing data” in English terminology) comprising for example a series of bits at zero or a series of bits at “1”, their loss has no effect on the decoding of the useful data. The useful budget is only increased when no information representative of the transmission received following an increase in the secondary budget indicates an increase in a risk of data loss (ie an increase in the packet loss rate or an increase time to go). In step 72, the processing module 12 determines which budget can be increased. To do this, the processing module 12 checks whether the secondary budget B_sec is less than a predefined percentage P70 of the transmission rate txjbitrate. For example P70 = 15%. When B_sec> P70 * tx_bkrate, the processing module 12 determines that it is the useful budget which can be increased. The processing module 12 then increases the useful budget during a step 73. Otherwise, the processing module 12 increases the secondary budget during a step 74. Steps 72, 73 and 74 are detailed in relation to FIGS. 8 and 9. During step 75, the processing module 12 determines whether the current loss rate Pc is greater than zero. If so, the processing module 12 executes a step 76 during which it applies a reduction in the transmission rate making it possible to reduce the rate of losses on the link. Step 76 is detailed in relation to FIG. 10. If the current loss rate Pc is zero, the processing module 12 checks whether the latency is too high during a step 77. If the latency is admissible, the processing module 12 does nothing and stands by during a step 79. Otherwise, the processing module 12 applies a reduction in the transmission rate making it possible to reduce the delay to go during d a step 78. Steps 77, 78 and 79 are detailed in relation to FIG. 11. Steps 73, 74, 76, 78 and 79 are followed by step 70. It is noted that, while the steps of increasing the transmission rate 73 and 74 may relate to the three modes of rate regulation, the steps of decreasing the transmission rate relate only to the second modes of rate regulation. Furthermore, as soon as one of the constraints examined during step 71 is not verified, the processing module 12 irretrievably leaves the aggressive mode. Fig. 8 schematically illustrates a first detail of step 73 of the method for regulating the speed of a network link according to the invention. In a step 730, the processing module 12 determines whether it is in the aggressive mode. It suffices for this that the processing module 12 verifies that it has not observed any packet loss up to this point. If the processing module 12 is in the aggressive mode, it proceeds to step 731. Otherwise, it executes step 734. During step 731, the processing module 12 checks whether a secondary data transmission rate tx_bitrate_scc is less than a first predefined percentage P81 of a useful data transmission rate tx_bitrate_data. For example P81 = 15%. If tx_bitrate_sec <P81 * tx_bitrate_data, during a step 732, the processing module 12 increases the useful budget B_data by a second predefined percentage P82 of the secondary budget B_sec (B_data = B_data + B_sec * P82) and decreases the secondary budget B_sec of the value of increase in the useful budget B_data (B_sec = B_sec * P83). For example, P82 = P83 = 50%. If the secondary data transmission rate tx_bitrate_sec is not less than the first predefined percentage P81 of the useful data transmission rate tx_bitrate_data, during a step 733, the processing module 12 fixes the value of the useful budget B_data at the sum transmission budget rx_f and secondary budget B_sec and sets the secondary budget B_sec to zero. Steps 732 and 733 correspond to step 73 in the case of the aggressive mode. Note that in these two stages, the total transmission budget (the sum of the useful budget B_data and the secondary budget B_sec) has not changed. Only the split between B_data useful budget and B_sec secondary budget has been modified to increase the B_data useful budget. Thus, the increase in the B_data useful budget did not increase the risk of packet loss. The increase in the secondary budget B_sec is voluntarily limited so that secondary data do not take too large a part in the transmitted data. During step 734, the processing module 12 checks whether the rate Rx_bitrate of reception by the control system 3 reaches a third predefined percentage P84 of the maximum rate available on the max bitratc network. For example, P84 = 50%. It is assumed here that the max_bitrate rate was obtained by the processing module 12 using the information contained in the "Total link received bytes" field of the information packets representative of the transmission. When Rx_bitrate> max_bitrate * P84, the processing module 12 allocates during a step 736, respectively to the useful budget B_data and to the secondary budget B_sec a fourth percentage P87 and a fifth percentage P88 predefined of the reception rate rx_bitrate, a sum of the budget useful B_data and the secondary budget B_sec being equal to said reception bit rate rx_bitrate, the useful budget B_data being greater than the secondary budget B_sec: B_data = P87 * rx_bitrate B_sec = P88 * rx_bitrate B_data + B_sec = rx_bitr ate B_data> Bsec In one embodiment P87 = 90% and P88 = 10%. In step 736, by taking percentages of the reception rate rx_bitrate, we make sure to stay within the bandwidth limits of the current link. When Rx_bitrate <max_bitrate * P84, during a step 735, the processing module 12 sets the secondary budget B_sec to zero and allocates to the useful budget B_data a sixth predefined percentage P85 of said maximum max_bitrate. Furthermore, the processing module 12 decreases the maximum max_bitrate by a predefined seventh percentage P86. Indeed, going to step 735 implies that for an unknown reason, the transmission rate dropped suddenly (or less probably dropped gradually) to reach the value max_bitrate * P84. Under these conditions, it is not certain that the maximum transmission rate achievable before is still available. Π it is preferable to decrease this maximum to reduce the risks during re-increases in the transmission rate. In one embodiment, P85 = 50% and P86 = 10%. Thus, when we observe that the reception speed rx_bitrate is much lower than the maximum speed max_bitrate (here the reception speed rx_bitrate is less than half the maximum speed max_bitrate), we increase the transmission speed directly to half the maximum speed max_bitrate. The increase in this case can therefore be rapid if the reception speed is very low, but secure since we are very far from the maximum speed observed on the current link. Steps 735 and 736 correspond to step 73 in the case of the soft mode or the secure mode. In soft and secure modes, the secondary budget cannot exceed the predefined P81 percentage (here 15%) of the reception rate rx_bitrate. Note that in steps 734, 735 and 736, information representative of the transmission is taken into account (rx_bitrate, max_bitrate) to determine the useful and secondary budgets, whereas in steps 731, 732 and 733, this information was not used. . Fig. 9 schematically illustrates a detail of step 74 of the method for regulating the speed of a network link according to the invention. In a step 740, the processing module 12 determines whether it is in the aggressive mode. If the processing module 12 is in the aggressive mode, during a step 741, the processing module 12 obtains a predefined increase value step_UP and assigns this value to a variable UP_speed representing the increase in throughput of the secondary budget B_sec . In a step 742, the processing module adds the value of the variable UP_speed to the secondary debit budget B_sec: B_sec = B_sec + UP_speed; The secondary budget therefore increases by the predefined increase value step_UP. In one embodiment, step_UP = 100 bytes. If the processing module 12 is not in the aggressive mode, the calculation of the value of the variable UP_speed is done in three stages 742, 743 and 744. During step 742, the processing module 12 calculates an intermediate value of the variable UP_speed: where delta is a difference such as delta = timewindow owdc During a step 743, the processing module 12 calculates a coefficient OWD_coef based on the time to go: where diff_OWD is a deviation such that diff_OWD = Coef_N X {mmjOWD - owdc). Coef_N is a variable whose calculation is explained below in relation to Fig. 12.). max_OWD_min is a value used to discriminate links with low latency from links with high latency. In one embodiment, the maxOWDmin value is fixed at “200 ms” and makes it possible to discriminate between conventional links having latencies of less than “100 ms”, of satellite links for which the latency is of the order of “300 ms”. During a step 744, the value of the variable UP_speed is calculated: UP_speed = OWD_coef * UP_speed The delta difference being less than the timewindow duration, the intermediate value of the variable UP_speed is necessarily less than the predefined increase value step_UP. Similarly, the numerator diffjOWD2 is by definition lower than the denominator minjDWD * max jOWDjnin. The coefficient OWD_coef is therefore necessarily positive and less than the unit. The value of the variable UP_speed in the case of the soft mode and the secure mode is therefore less than the predefined increase value step_UP. The increases in the secondary budget B_sec in the soft mode and in the secure mode are therefore less than the increases in the secondary budget B_sec in the aggressive mode. In addition, the closer the time to go owd is to the timewindow duration, the smaller the increase in the secondary budget B_sec. In addition, the larger the difference diff_OWD, the smaller the increase in the secondary budget B_sec. Small increases in throughput reduce the risk of packet loss. Step 744 is followed by step 745 already explained. Fig. 10 schematically illustrates a detail of step 76 of the method for regulating the speed of a network link according to the invention. Step 76 corresponds to a case where packet losses have been observed. In a step 760, the processing module 12 checks whether it can reduce the secondary budget B_sec. For this, the processing module 12 verifies that the secondary budget B_sec is high enough for a reduction in this budget to have an impact on the transmission. The secondary budget B_sec is therefore compared to a predefined minimum budget Sl. In one embodiment Sl = 100kbits / s. If the secondary budget B_sec is greater than the minimum budget S1, the processing module 12 executes a step 761. Otherwise, it executes a step 762. During step 761, the processing module 12 decreases the secondary budget B_sec by an eighth predefined percentage P101: B_sec = B_sec * P101 In one embodiment, P 101 = 90%. During step 762, the processing module 12 reduces the secondary flow rate B_sec to zero and decreases the useful budget B_data by a ninth predefined percentage P102. B_data = B_data * P102 In one embodiment, P 102 = 90%. The maximum speed available on the max__bitrate network is then updated in steps 763, 764 and 765. During step 763, the processing module 12 checks whether the current transmission rate (i.e. if the sum of the secondary budget B_sec and the useful budget B_data) is greater than the max_bitrate rate. If the max_bitrate rate is lower than the current transmission rate, the processing module 12 fixes the value of the max_bitrate rate to the value of the current transmission rate during a step 765: max_bitrate = B_sec + B_data If the max_bitrate rate is higher than the current transmission rate, the processing module 12 decreases the value of the max_bitrate rate by a tenth predefined percentage P103: max_bitrate = max_bitrate * P103 In one embodiment, P 103 = 90%. In steps 763, 764 and 765, we therefore took into account the fact that the maximum speed available on the network had to decrease. Fig. 11 illustrates in detail the steps 77, 78 and 79 of the method for regulating the speed of a network link according to the invention. In a step 780, corresponding to step 77, the processing module 12 checks whether the latency is too great. To do this, the processing module 12 determines whether the last difference diff_OWD calculated is less than zero. If the difference diffOWD is greater than or equal to zero, the processing module 12 implements a step 781 corresponding to step 79. During this step the processing module 12 does nothing and waits. If the deviation dIOWD is less than zero, the processing module 12 implements steps 782 to 789 corresponding to step 78. In a step 782, the processing module 12 calculates a Percent variable representative of a percentage of decline and such that Percent = owdc. (A.min_OWD) In one embodiment, a = 1.5. In a step 783, the processing module 12 compares the variable Percent with a predefined value β. In one embodiment / = 10. If Percent> β, then Percent is set to the predefined value β. Thus the Percent decrease percentage never exceeds the predefined value β (here 10%). The predefined value β is therefore the maximum drop percentage. If Percent <β, the processing module 12 compares the variable Percent with a predefined value y. In one embodiment y = 5. If Percent <y, then Percent is set to the predefined value y. Thus the Percent drop percentage is never lower than the predefined value y (here 5%). The preset value is therefore the minimum drop percentage. Steps 784 when the Percent variable is between the preset value y and the preset value β, 785 and 786 are followed by step 787 During step 787, the processing module 12 compares the secondary budget B_sec, with a value of minimum predefined secondary budget SI. Below the predefined minimum secondary budget SI, the secondary debit budget B_sec is considered not significant. It is preferable in this case to bring it back to zero. In one embodiment Sl = 100 Kbits / s. If B_ _sec> SI, the secondary debit budget B_sec is decreased as follows: If B_sec <S1, the secondary budget B_sec is set to zero, and the useful budget B_data is decreased as follows: B_data = Plll x rx_bitrate where P111 is an eleventh predefined percentage Plll. In one embodiment Plll = 90% Steps 73, 74, 76, 78 and 79 are followed by step 70 upon receipt of a packet of information representative of the transmission by the processing module 12. Fig. 5 schematically illustrates a method for regulating overall speed according to the invention allowing distribution of data over a plurality of network links. The overall rate control method uses results from different instances of the link rate control method to distribute the packets over the network links 2A, 2B and 2C. The global flow regulation method is executed periodically with a predefined period which can be fixed for example at a value between "2" to "10" ms. In a step 50, the processing module 12 checks whether data is to be transmitted to the control system 3. For example, it checks a state of an output memory (buffer) of the audio / video encoder 101 or whether secondary data are to be transmitted. During step 50, the processing module also checks whether enough budget is available on at least one of the network links 2A, 2B or 2C to transmit the data that it has to transmit. To do this, the processing module adds up the useful budget B_data and the secondary budget B_sec for each link 2A, 2B and 2C. If no data is to be transmitted or if no link has a sufficient budget, the processing module 12 is put on hold. Otherwise, the processing module 12 obtains, during a step 51, information representative of the network link which it must use. In one embodiment, the network links are classified in an ordered list. The processing module 12 traverses this list according to the order of the list. During step 51, the processing module 12 uses the network link following the last network link used in the list. If the last network link used is the last in the list, the processing module 12 resumes the list at the start. We call the link chosen in step 51, selected link. In a step 52, the processing module 12 obtains a data packet to be transmitted. In a step 53, the processing module 12 verifies that the budget of the selected link is sufficient to transmit said data packet. If it is a useful data packet, the processing module 12 verifies that the useful budget B_data of the selected link is sufficient. If it is a secondary data packet, the processing module 12 verifies that the secondary budget B_sec of the selected link is sufficient. If the budget is not sufficient, the processing module 12 returns to step 51 to go to the next network link in the list. Otherwise, in a step 54, the processing module 12 supplies said packet to the communication module corresponding to the selected network link and causes the packet to be sent by said communication module. In a step 55, the processing module 12 updates the speed of transmission of audio / video data and, if necessary, of transmission of the redundant data of the error control in advance and of retransmissions by using information on the data previously transmitted on the network links. This determines what percentage of the transmitted data represents audio / video data. This percentage can then be used to calculate a bit rate constraint to be allocated to the audio / video encoder 101 (by applying said percentage to the sum of the useful budgets obtained for each link). The rate of redundant error checking data and / or retransmissions depends directly on the audio / video rate and cannot be changed. In a step 56, the processing module 12 verifies that data remains to be transmitted following the sending of the packet during step 54. If data remains to be transmitted, the processing module 12 returns to step 52. Otherwise, the processing module returns to step 50 and waits for new data to be transmitted. In one embodiment, the network links are ordered in the list as a function of information representative of the performance of each network link. At regular intervals, for example on each reception of a packet of information representative of the transmission or every T seconds, with for example T = ls, the processing module 12 calculates a performance metric Qi for each link (with i = 2A, 2B or 2C). where Bdatai is the useful budget for link i, BseCi is the secondary budget for link i, Pcl is the current packet loss rate for link i, TD is a sum of secondary budget for all links , and owdlc is the last measured delay to go for network link i. Note that the higher the transmission speed budget for a network link (Bdatai + BseCj), the higher the performance metric for that link. In addition, the lower the packet loss rate on a Pcl network link, the higher the performance metric of this link. Finally, the lower the time to go compared to the size of the congestion window, the higher the performance metric of this link. Links with a high throughput budget, a low packet loss rate and a short delay to go are therefore at the top of the list. The performance metric Qi is therefore an increasing function of the budget of data to be transmitted by the link i (Bdatai + Bseci), a decreasing function of information representative of a packet loss rate on the link i (here Pcl but this could just as easily be an average packet loss rate), and an increasing function of a difference between the timewindow duration and information representative of a measured time to go for the link i . Note that in this metric, by taking the square of the transmission rate budget and the packet loss rate, we give more importance to these two pieces of information representative of the network than to the delay in going. Giving more importance to the transmission rate and the loss rate than to latency avoids unnecessarily penalizing links for which high latency is normal, such as satellite links. High latency but lossless links will also be preferred over lossy networks with lower latency. In one embodiment, when the list is ordered according to the performance metric Q; and that during step 56, the processing module 12 finds itself without data to be transmitted immediately after a packet transmission, the next link used to transmit a packet is the first in the list. The list is then browsed starting from the first link in the list. We therefore favor sending data on the links with the best performance metric (i.e. the best links). Fig. 12 describes a detail of step 743 and more particularly a method of calculating the variable Coef_N. The method described in relation to FIG. 12 is executed periodically with a predefined period δ by the processing module 12. In one embodiment, the method is executed every “10” seconds (δ = 10 seconds). During the period δ preceding an execution of the method, the processing module 12 evaluates the number of losses as well as a number of times that the delay to go exceeds a value Coeff_N * min_OWD without loss of packets being noted. In a step 1200, the processing module 12 determines whether losses have been observed during the period δ preceding the current execution of the method for determining the variable Coeff_N. If losses have been noted, in a step 1201 Coeff_N is decreased by "0.02". In a step 1202, the processing module 12 checks whether the link is a link with low latency or with high latency. To do this, the processing module compares min_OWD with maxOWDmin. If min OWD> maxOWDmin, the processing module 12 determines that the link is a link with high latency. In this case, it executes a step 1203. Otherwise it executes a step 1204. In step 1203, the processing module 12 calculates a value of the variable Coeff_N by taking the maximum between the value of Coeff_N calculated during step 1201 and a minimum value of Coeff_N adapted to the high latency link MIN_N_HIGH_LATEN C Y. In step 1204, the processing module 12 calculates a value of the variable Coeff_N by taking the maximum between the value of Coeff_N calculated during step 1201 and a minimum value of Coeff_N adapted to the low latency link MIN_N_LOW_LATENCY. The steps 1203 and 1204 are followed by a step 1208 during which the value of the variable Coeff_N is weighted. In one embodiment, the value of coeff_N calculated by weighting in step 1208 results from a weighted average of the last four values of the variable coeff_N calculated, the last calculated value having the highest weight in the weighted average. If no packet loss has been observed during step 1200, the processing module 12 checks during a step 1205 how many times the outbound delay has exceeded the value Coeff_N * m'mjOWD during the period δ previous without losing packets. If the outbound delay has exceeded a predefined number of times Kowd (for example Kowd = 5) the value Coeff_N * xmnjOWD without loss of packets being observed, the processing module 12 executes a step 1206. Otherwise, the processing module processing 12 decides not to modify the value of the variable CoefF_N during a step 1209. During step 1206, the processing module 12 checks whether the value of the variable Coeff_N is less than a predefined maximum value MAX_N of the value Coeff_N. If so, the value of the variable Coeff_N is incremented by "0.01". Otherwise, the processing module 12 executes step 1209 already explained. Step 1207 is followed by step 1208. Step 1208 is optional, however, and the processing module 12 could also use the value of the variable Coeff_N from steps 1203, 1204 and 1207. In one embodiment: • MIN_N_HIGH_LATENC Y = 1.5 • MIN_N_LOW_LATENCY = 2.5 • MAX_N = 4.
权利要求:
Claims (15) [1" id="c-fr-0001] CLAIMS 1) Method for speed regulation during transmission of audio / video data on a network link between a transmitter and a receiver, said method being implemented during reception by the transmitter of information representative of the transmission transmitted by the receiver, characterized in that the method is implemented by the transmitter and comprises: a plurality of speed control modes including a first speed control mode, executed at the start of the transmission, in which the only modification transmission rate possible by the transmitter is an increase, each rate increase value being determined by not taking into account any information representative of the transmission, and at least one second mode of regulation implemented following the first mode, in which at least one of the information representative of the transmission is used to increase or decrease nute the transmission speed, a transition from the first mode to a second mode being made when one of the information representative of the transmission indicates that the transmission speed has reached a maximum speed available on the network link; said transmission rate being shared between a useful data rate budget comprising audio / video data, called useful budget, and a secondary data rate budget, said secondary budget, not necessary for the decoding of audio / video data, only the secondary budget is increased during an increase in the transmission rate, the useful budget being increased only when no information representative of the transmission received following an increase in the secondary budget indicates an increase in the risk of loss of data. [0002] 2) Method according to claim 1 characterized in that, in the first mode, when at least one of the information representative of the transmission indicates that an increase in a useful budget is possible (72), the method comprises: increasing ( 732) the useful budget of a second predefined percentage of the secondary budget when a transmission rate by the transmitter of secondary data is less than a first predefined percentage of the transmission rate by the transmitter of useful data and decrease the secondary budget the value of the increase in the useful budget; increase (733) the useful budget by setting the value of the useful budget to the sum of the secondary budget and a value representative of the rate of reception by the receiver of useful and secondary data transmitted by the transmitter. [0003] 3) Method according to claim 1 or 2 characterized in that, in the first mode, when at least one of the information representative of the transmission indicates that an increase in a secondary budget must be applied (73), the method comprises : increase (741, 745) the secondary budget by a first predefined increase value. [0004] 4) Method according to claim 1, 2 or 3 characterized in that, in a second mode, when at least one of the information representative of the transmission indicates that an increase in the useful budget is possible, the method comprises: when a information representative of the transmission indicates (734) that a reception reception rate of the receiver reaches a third predefined percentage of the maximum rate available on the network, allocating (736) respectively to the useful budget and to the secondary budget a fourth and a fifth percentage predefined reception throughput, a sum of the useful budget and the secondary budget being equal to said reception throughput, the useful budget being greater than the secondary budget; when one of the information representative of the transmission indicates (734) that said reception speed is less than the third predefined percentage of the maximum speed available on the network, set (735) the secondary budget to zero, allocate to the useful budget a sixth percentage predefined from said maximum and decrease said maximum by a seventh predefined percentage. [0005] 5) Method according to any one of the preceding claims, characterized in that, in a second mode, when at least one of the information representative of the transmission indicates that an increase in the secondary budget must be applied, the method comprises: calculating ( 742, 743, 744) an increase value by multiplying a second predefined increase value less than the first predefined increase value by a coefficient between zero and unity, said coefficient being calculated from information representative of a time window and of time dependent information going observed by the receiver and transmitted in the information representative of the transmission to the transmitter; and; increase (745) the useful budget by the calculated increase value. [0006] 6) Method according to any one of the preceding claims, characterized in that, when at least one of the information representative of the transmission indicates that no increase in the transmission rate is possible, the method comprises: applying a verification procedure packet loss rate and reduce the transmission rate if the loss rate is greater than a predefined loss threshold (760, 761, 762); if the loss rate is lower than the predefined loss threshold, apply a go delay verification procedure (780, 781, 783) and reduce the transmission rate when a difference between the go delay and a value of Reference go delay is greater than a predefined deviation. [0007] 7) Method for regulating the rate between a transmitter and a receiver connected by a plurality of network links during an audio / video data transmission, characterized in that the method comprises: forming a list of ordered links; browse the links in order of the list; for each link: define a data budget to be transmitted by said link, known as the current link, using information provided for the current link by the rate control method according to any one of claims 1 to 6; and, transmit a quantity of data corresponding to said budget; go to the following link when the quantity of data corresponding to said budget has been transmitted by resuming the list at the beginning when all the links in the list have been browsed. [0008] 8) Method according to claim 7, characterized in that the list is ordered according to a performance metric calculated for each link of the plurality of links, for a link, said metric being an increasing function of the data budget to be transmitted by said link , a decreasing function of information representative of a rate of packet losses on said link, and an increasing function of a difference between a size of window of congestion of links and of information representative of a time of go measured for said link. [0009] 9) Method according to claim 8, characterized in that the performance metric for a network link i of the plurality of links is calculated as follows: where Bdatai is the useful budget for the network link i, BseCi is the secondary budget for the network link i, the sum of said useful budget and said secondary budget being the data budget to be transmitted by the network link i, Pcl is representative information a packet loss rate for network link i, TD is a sum of secondary budget for all network links of said plurality, timewindow is maximum allowable latency between transmitter and receiver, and owdi is information representative of a measured delay time for the network link i. [0010] 10) Method according to claim 8 or 9, characterized in that when the transmitter is left without data to be transmitted after a transmission of a packet, the next link used to transmit a packet is the first in the list, the list being then browsed starting from the first link in the list. [0011] 11) Device for regulating bit rate during a transmission of audio / video data on a network link between a transmitter and a receiver, characterized in that it comprises means suitable for implementing the method according to claims 1 to 6 . [0012] 12) Device for regulating the flow between a transmitter and a receiver connected by a plurality of network links during an audio / video data transmission, characterized in that it comprises means suitable for implementing the method according to the claims 7 to 10. [0013] 13) Audio / video data transmission system comprising a transmitter comprising a device according to claim 11 or 12 and a receiver, the transmitter and the receiver being connected by at least one network link. [0014] 14) Computer program, characterized in that it comprises instructions for implementing, by a device (12), the method according to any one of claims 1 to 6 or the method according to any one of the claims 7 to 10, when said program is executed by a processor of said device. [0015] 15) Storage means, characterized in that they store a computer program comprising instructions for implementing, by a device (12), the method according to any one of claims 1 to 6 or the method according to claims 7 to 10, when said program is executed by a processor of said device.
类似技术:
公开号 | 公开日 | 专利标题 EP3503618B1|2020-11-25|Flow control method US9503491B2|2016-11-22|Playback stall avoidance in adaptive media streaming EP3238406B1|2019-07-31|Treatment method of application data delivery FR2906950A1|2008-04-11|METHOD AND DEVICES FOR ADAPTING THE TRANSMISSION RATE OF A DATA STREAM IN THE PRESENCE OF INTERFERENCE. FR2922391A1|2009-04-17|METHOD AND DEVICE FOR DATA TRANSMISSION FR2975555A1|2012-11-23|METHOD OF DYNAMIC ADAPTATION OF RECEPTION RATE AND RECEPTOR EP1829377A1|2007-09-05|Method for a variable bit rate transmission through a transmission channel US20140078916A1|2014-03-20|Systems and Methods for Assessing Jitter Buffers TW201316814A|2013-04-16|Methods for transmitting and receiving a digital signal, transmitter and receiver EP2947888A1|2015-11-25|Adaptive method for downloading digital content for a plurality of screens FR2849733A1|2004-07-09|DEVICE AND METHOD FOR ADJUSTING THE FLOW OF A CONTENT FLOW AND RELATED PRODUCTS EP2928145A1|2015-10-07|Method for estimating a bandwidth associated with a connection between a client terminal and at least one server, corresponding client terminal FR2932938A1|2009-12-25|METHOD AND DEVICE FOR DATA TRANSMISSION EP3167617B1|2019-08-28|Method and device for remotely recording video programs FR2946820A1|2010-12-17|DATA TRANSMISSION METHOD AND ASSOCIATED DEVICE. EP3461135A1|2019-03-27|Method for managing the access right to a digital content FR2825865A1|2002-12-13|SELECTIVE RETRANSMISSION OF PACKETS WITH TIME TRANSMISSION CONTROL EP2680603A1|2014-01-01|Processing technique to provide real-time content to client entities FR2923118A1|2009-05-01|METHOD, DEVICE AND COMPUTER PROGRAM FOR MANAGING THE QUANTITY OF DATA ISSUED BY A TRANSMISSION DEVICE EP3496407A1|2019-06-12|Method for managing the power consumption of an electronic device CN107967921B|2021-09-07|Volume adjusting method and device of conference system EP3777308A1|2021-02-17|Communication method WO2019185552A1|2019-10-03|Communication method CN111886875A|2020-11-03|Congestion response for timely media delivery FR2917919A1|2008-12-26|METHOD AND DEVICE FOR TRANSMITTING IMAGES
同族专利:
公开号 | 公开日 EP3503618B1|2020-11-25| EP3503618A1|2019-06-26| ES2847475T3|2021-08-03| US10660112B2|2020-05-19| US20190200368A1|2019-06-27| FR3076158B1|2020-01-10|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题 US20030026207A1|2001-08-06|2003-02-06|Koninklijke Philips Electronics N.V.|Method for supporting non-linear, highly scalable increase-decrease congestion control scheme| US7002937B1|2000-10-17|2006-02-21|Sprint Communications Company L.P.|Access based on termination in a wireless communication system| JP2005191933A|2003-12-25|2005-07-14|Funai Electric Co Ltd|Transmitter and transceiver system| US8045469B2|2006-12-18|2011-10-25|Research In Motion Limited|System and method for adjusting transmission data rates to a device in a communication network| TW201019649A|2008-11-06|2010-05-16|Inst Information Industry|Network system, adjusting method of data transmission rate and computer program procut thereof| JP5919527B2|2011-06-16|2016-05-18|パナソニックIpマネジメント株式会社|Transmission device, transmission method, integrated circuit and program thereof| US9201812B2|2011-07-25|2015-12-01|Aliphcom|Multiple logical representations of audio functions in a wireless audio transmitter that transmits audio data at different data rates| US9860605B2|2013-06-14|2018-01-02|Google Llc|Method and apparatus for controlling source transmission rate for video streaming based on queuing delay|US10805044B2|2019-02-25|2020-10-13|At&T Intellectual Property I, L.P.|Optimizing delay-sensitive network-based communications with latency guidance| CN110401511B|2019-07-25|2021-11-12|广州市百果园信息技术有限公司|Method, device, equipment and storage medium for determining transmission rate| CN111245734B|2020-01-08|2022-03-08|腾讯科技(深圳)有限公司|Audio data transmission method, device, processing equipment and storage medium|
法律状态:
2018-12-26| PLFP| Fee payment|Year of fee payment: 2 | 2019-06-28| PLSC| Search report ready|Effective date: 20190628 | 2019-12-27| PLFP| Fee payment|Year of fee payment: 3 | 2020-12-27| PLFP| Fee payment|Year of fee payment: 4 |
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 FR1762915|2017-12-22| FR1762915A|FR3076158B1|2017-12-22|2017-12-22|FLOW REGULATION METHOD|FR1762915A| FR3076158B1|2017-12-22|2017-12-22|FLOW REGULATION METHOD| US16/225,495| US10660112B2|2017-12-22|2018-12-19|Transmission rate regulation method| EP18214180.4A| EP3503618B1|2017-12-22|2018-12-19|Flow control method| ES18214180T| ES2847475T3|2017-12-22|2018-12-19|Transfer speed regulation procedure| 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|